home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1996 #14
/
Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO
/
pcboard
/
msgtag11.zip
/
MEC.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1996-01-30
|
4KB
|
268 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
Int INT001
Int INT002
Int INT003
BigStr BIGSTR001
BigStr BIGSTR002
BigStr BIGSTR003
;------------------------------------------------------------------------------
STRING003 = ReadLine(PCBDat(), 204)
STRING003 = FileInf(STRING003, 6) + ":" + FileInf(STRING003, 7)
STRING001 = STRING003 + "msgtag.use"
STRING006 = STRING003 + "mtg" + String(CurConf()) + ".lst"
STRING005 = STRING003 + "userpl.dat"
If (Exist(STRING001)) Then
If (Exist(STRING005)) Then
GetUser
FOpen 7, STRING005, 0, 0
FGet 7, STRING003
U_PageLen = ToInt(STRING003)
PutUser
FClose 7
Delete STRING005
Endif
Endif
STRING003 = String(LoMsgNum()) + "-" + String(HiMsgNum())
If (FileInf(STRING006, 4) > 0) Then
STRING002 = "@X02[@X0FH@X02]elp,@X02(@X0F" + STRING003 + "@X02),@X02(@X0FTAG/DELTAG@X02), @X0EEnter your message command"
InputStr STRING002, BIGSTR001, 14, 250, Mask_Ascii(), 8 + 256 + 16
BIGSTR001 = Trim(BIGSTR001, " ")
If (BIGSTR001 == "") Then
KbdStuff Chr(13)
End
Goto LABEL002
Endif
If (BIGSTR001 == "TAG") Then
Gosub LABEL003
Tokenize BIGSTR001
INT002 = TokCount()
If (INT002 > 20) Then
Gosub LABEL004
STRING003 = ""
STRING002 = " @X0BChoose set number to read @X0E(Enter=quit)@X07"
InputStr STRING002, STRING003, 14, 2, Mask_Num(), 256 + 4 + 2
If (STRING003 <> "") Then
Tokenize BIGSTR003
For INT001 = 1 To INT003
STRING004 = GetToken()
If (INT001 == ToInt(STRING003)) Then
STRING007 = Mid(STRING004, 1, InStr(STRING004, ",") - 1)
STRING008 = Mid(STRING004, InStr(STRING004, ",") + 1, Len(STRING004) - InStr(STRING004, ","))
BIGSTR001 = Mid(BIGSTR001, InStr(BIGSTR001, STRING007), InStr(BIGSTR001, STRING008) - InStr(BIGSTR001, STRING007) + Len(STRING008))
Break
Endif
Next
Goto LABEL001
Endif
BIGSTR001 = ""
Endif
:LABEL001
KbdStuff Chr(13) + "R;" + BIGSTR001 + Chr(13)
End
Goto LABEL002
Endif
If (BIGSTR001 == "DELTAG") Then
Delete STRING006
Newline
PrintLn "@X0AYour '@X0ETagged@X0A' Messsage Number list for this conference has been @X0Cdeleted.@X07"
Newline
Delay 36
KbdStuff Chr(13)
End
Goto LABEL002
Endif
KbdStuff BIGSTR001 + Chr(13)
End
Endif
:LABEL002
STRING002 = "(H)elp, (" + STRING003 + "), Enter your Message Command"
InputStr STRING002, BIGSTR001, 14, 80, Mask_Ascii(), 8 + 256 + 16
BIGSTR001 = Trim(BIGSTR001, " ")
If (Left(BIGSTR001, 1) == "Q") Then
FOpen 1, STRING001, 1, 0
FClose 1
Endif
KbdStuff BIGSTR001 + Chr(13)
End
:LABEL003
FOpen 1, STRING006, 0, 0
FRead 1, BIGSTR001, FileInf(STRING006, 4)
FClose 1
Return
:LABEL004
PrintLn
PrintLn "@X0E┌──────────────────────────────────────────────────────────────┐"
PrintLn "│@X0BDue to a limitation of PCBoard, only 20 Message numbers can be@X0E│"
PrintLn "│@X0Bstacked to read at one time. Pick the @X0DSET NUMBER@X0B of tagged @X0E│"
PrintLn "│@X0Bmessages you wish to read. @X0E│"
PrintLn "@X0E└──────────────────────────────────────────────────────────────┘"
PrintLn
PrintLn "@X0FSet # @X0CTagged Message Numbers@X07"
PrintLn "@X0A───── ────────────────────────────────────────────────────────"
INT003 = 1
Print Space(3 - Len(String(INT003))), "@X0F", INT003, Space(4)
INT001 = 0
BIGSTR003 = ""
BIGSTR002 = BIGSTR001
Gosub LABEL005
Print "@X02", STRING003, " "
BIGSTR003 = STRING003 + ","
Inc INT001
While (1) Do
Select Case (INT001)
Case 20
BIGSTR003 = BIGSTR003 + STRING003 + ";"
INT001 = 0
PrintLn
PrintLn
Gosub LABEL005
If (STRING003 == "") Then
BIGSTR003 = BIGSTR003 + STRING004 + ";"
Break
Endif
Inc INT003
Print Space(3 - Len(String(INT003))), "@X0F", INT003, Space(4)
Print "@X02", STRING003, " "
BIGSTR003 = BIGSTR003 + STRING003 + ","
Inc INT001
Continue
Case 10
PrintLn
Print Space(7)
End Select
Gosub LABEL005
If (STRING003 == "") Then
BIGSTR003 = BIGSTR003 + STRING004 + ";"
Newlines 2
Break
Endif
Print "@X02", STRING003, " "
Inc INT001
STRING004 = STRING003
EndWhile
Return
:LABEL005
STRING003 = Mid(BIGSTR002, 1, InStr(BIGSTR002, ";") - 1)
BIGSTR002 = Mid(BIGSTR002, InStr(BIGSTR002, ";") + 1, Len(BIGSTR002) - InStr(BIGSTR002, ";"))
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 5 End
; 27 Goto
; 34 Let
; 6 Print
; 13 PrintLn
; 16 If
; 3 FOpen
; 3 FClose
; 1 FGet
; 1 GetUser
; 1 PutUser
; 2 Delete
; 3 InputStr
; 5 Gosub
; 3 Return
; 1 Delay
; 4 Inc
; 2 Newline
; 1 Newlines
; 2 Tokenize
; 5 KbdStuff
; 1 FRead
;
;
; ■ Functions used :
;
; 37 +
; 7 -
; 9 ==
; 1 <>
; 1 <
; 1 <=
; 2 >
; 2 >=
; 16 !
; 2 &&
; 1 ||
; 5 Len(
; 5 Mid()
; 1 Left()
; 5 Space()
; 6 Chr()
; 9 InStr()
; 2 Trim()
; 5 String()
; 1 Mask_Num()
; 2 Mask_Ascii()
; 1 CurConf()
; 1 PCBDat()
; 1 ReadLine()
; 1 GetToken()
; 2 Exist()
; 4 FileInf()
; 1 TokCount()
; 2 ToInt()
; 1 LoMsgNum()
; 1 HiMsgNum()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Wd
;
; W - Write user ■ 5
; Program writes a user record. Although this may be normal for a
; User Editor, it may also be a way to modify an account level.
; ■ Search for : PUTUSER
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 1 For/Next
; 1 While/EndWhile
; 12 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------